home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 May: Tool Chest / Developer CD Series May 1996 (Tool Chest) (Apple Computer) (1996).iso / Tool Chest / Testing & Debugging / Debuggers & dcmds / MacsBug 6.5.2 / MacsBug 6.5.2 Changes < prev    next >
Encoding:
Text File  |  1995-07-27  |  9.0 KB  |  203 lines  |  [ttro/ttxt]

  1.  About MacsBug 6.5.2
  2.    7/26/95
  3.  
  4.      With the 6.5.1 release, we've adopted a newer, hopefully less-confusing version strategy. From
  5.            now on, each new version of MacsBug will be a “final” version. Thus, the next version will be
  6.            6.5.3, the next bug-fix version to 6.5.
  7.    
  8.  
  9.            •• NOTE •• - MacsBug 6.5.1 was never released, so please be sure to read what changed in that
  10.            •• NOTE •• - version since it's not repeated here, but is significant.
  11.  
  12.  
  13.            MIXED MODE STEPPING
  14.     
  15.            You can now step across all Mixed Mode transitions. This means that when you come up to a
  16.            MixedModeMagic trap, stepping once more lands on the first instruction on the other side,
  17.            whether it's 68K or PowerPC. Similarly, when you're stepping through PowerPC code that
  18.            calls the functions CallUniversalProc or CallOSTrapUniversalProc, you will 
  19.      automatically land on the other side of the call. When returning from a 68K routine to
  20.            PowerPC code or vice-versa, stepping the return instruction will take you back to the caller, 
  21.            whether it's 68K or PowerPC. There should be no instances where stepping takes you into 
  22.            Mixed Mode itself (so if you're debugging Mixed Mode, use another debugger).
  23.  
  24.            Mixed Mode stepping works equally well with accelerated (“fat”) resources. If your 68K code
  25.            loads and calls into a fat resource, you can simply step right into it.
  26.  
  27.            NMIs IN NATIVE CODE
  28.  
  29.            Using the NMI key sequence, you can now interrupt native code execution, and will land on 
  30.            the PowerPC instruction you interrupted. However, due to reentracy concerns, you cannot 
  31.            interrupt in the middle of Mixed Mode execution, you'll land in 68K code like you used to do 
  32.            with older versions of MacsBug.
  33.  
  34.            BUS ERROR CATCHING ON POWERPC
  35.  
  36.            Bus error handling on the first-generation PowerPC machines (6100/7100/8100) now works. 
  37.            This really wasn't a bug in MacsBug, but I fixed it anyway. The problem was that the sound-in
  38.            component trashes the bus error vector when it is loaded (this is the case in 7.5 and 7.5.1). 
  39.            MacsBug now takes care of the component load through a magical patch, and fixes up the bus
  40.            error vector if it becomes damaged. See, MacsBug really is system software.
  41.  
  42.            POWERPC STACK CRAWL
  43.  
  44.            Fixed the infinite loop bug in the “SC” command when walking back over PowerPC->68K 
  45.            switch frames (mentioned in the 6.5.1 release notes).
  46.  
  47.            POWERPC DEBUGGER/DEBUGSTR CALLS
  48.  
  49.            When you execute a Debugger or DebugStr in native code, you should no longer land in the
  50.            implementation (in InterfaceLib at present), you'll be in your own code right after the 
  51.            branch to the library where they live.
  52.  
  53.            POWERPC STEPPING
  54.     
  55.            Stepping or tracing with a count now works in PowerPC code.
  56.  
  57.            POWERPC REGISTER DISPLAY
  58.  
  59.            When on a PowerPC machine, we now show the current interrupt mask in place of the 
  60.            Memory Manager mode in the left sidebar area (you're always in 32-bit mode). This is shown 
  61.            (and is correct) when in both 68K or PowerPC code.
  62.  
  63.            The current interrupt mask is shown in the PowerPC register set when the “TD” command is 
  64.            used.
  65.  
  66.            Changed “TF” command to show the exponent and sign of each FPR as one component.
  67.  
  68.            REGISTER ASSIGNMENT
  69.  
  70.            You can now set and get A5 when in both 68K and PowerPC code. For the moment, this is the 
  71.            only 68K register you can get to since it's the most useful. This means that macros like 
  72.            “thecport” work regardless of the current instruction set.
  73.  
  74.            The 68020-040 register formerly known as “DFC” (Data Function Code) must now be called 
  75.            “RDFC” so it's no longer hex (nobody cares about this register anyway).
  76.  
  77.            COMMANDS FIXED/ADDED
  78.  
  79.            Added a new command “STAT” and incorporated it into the StdLog macro. It shows lots of 
  80.            useful information you can see on the screen, but have never had an easy way of getting into 
  81.            the log (at least not very concisely). For instance, it identifies the names of all shipping 
  82.            machines that have unique box flag values, shows used stack space, max-used stack space when
  83.            available, and ResErr/MemErr when they are nonzero.
  84.  
  85.            The “EA” (Exit to Application) and “ES” (Exit to Shell) commands now work when you're in 
  86.            PowerPC code.
  87.  
  88.            The “IR” (Instruction list to Return) command now works in PowerPC code with no address.
  89.  
  90.            “IRP” (Instruction list to Return PowerPC) command has been added.
  91.  
  92.            “GTP” (Go Till in PowerPC code) command has been added.
  93.  
  94.            Restarting (RS/RB) now works in a general way on PCI-based machines. It used to need a box 
  95.            flag table, which was a work-around for early developmental ROMs without a reasonable
  96.            Gestalt selector to identify that the machine needed a hard reset to restart.
  97.  
  98.            The “DMA” (Display Memory ASCII) command now honors the DITTO mode.
  99.  
  100.            WH COMMAND
  101.  
  102.            When displaying the CFM library an address lives in, we now display the executable and 
  103.            writable status of the section the address is in (if any).
  104.  
  105.            If an address is in low memory, we now say so (instead of saying it's in RAM but not in a know 
  106.            heap).
  107.  
  108.            A-TRAP RECORDING ON QUADRA/PERFORMA 63x AND POWERBOOK 150
  109.     
  110.            It works, and doesn't make your machine crash. I really don't want to tell you why 'cause it
  111.            would make a great puzzle page.
  112.  
  113.            A-TRAP ACTIONS
  114.  
  115.            A-Trap tracing and recording no longer mask trap values into the A000-A0FF and A800-ABFF
  116.            range when displaying them, all bits are shown as-is when the trap was executed.
  117.  
  118.            A-Trap trace now shows the name of the real call that was made if the trap is selector-based
  119.            (dispatched), rather than the trap. This means you'll see traces with information such as
  120.            “SameProcess” instead of “OSDispatch”, which is much more useful.
  121.  
  122.            A-Trap recording and tracing now identifies Enqueue and Dequeue as stack-based traps rather
  123.            than register-based (they aren't).
  124.  
  125.            A-Trap break, trace, and step-spy logic has been fixed so you can now have combinations of 
  126.            them pending at the same time that actually work. In the past you couldn't have a trace and a 
  127.            break work at the same time, the first one that was activated got precedence. This means you 
  128.            can now have multiple trace ranges and they'll work as well.
  129.  
  130.             Fixed the long-standing (since November 24, 1992, to be exact) bug where you'd land near a 
  131.            TRAP #$D inside MacsBug if you stepped over an A-Trap that had a break action set on it.
  132.  
  133.            Setting an A-Trap break while in PowerPC code works (I was stupid and failed to install the
  134.            A-Trap dispatcher patch).
  135.  
  136.            68K DISASSEMBLY
  137.  
  138.            When disassembling a MixedModeMagic trap (AAFE) that's at the current 68K PC, we now show 
  139.            the address that you'll land if you step across the mode transition, as well as the destination
  140.            instruction set.
  141.  
  142.            When disassembling an A-Trap instruction, the comment field now contains the 
  143.            implementation address of the trap, rather then the trap word. It's already shown off to the 
  144.            right anyway.
  145.  
  146.            POWERPC DISASSEMBLY
  147.     
  148.            When disassembling PowerPC code that uses an offset off of R0, we now look up macros for that
  149.            address. For example, instead of getting this disassembly:
  150.            
  151.                            lwz r3, 0x064F(0)
  152.                         
  153.            you'll get:
  154.            
  155.                            lwz r3, JFlushCache(r0)
  156.  
  157.  
  158.            Throughout PowerPC disassembly all fields are now shown in hex instead of decimal.
  159.  
  160.            The symbol lookup code now lets tracebacks win if they're at the same address as a previously
  161.            found CFM export. This lets the disassembler munch the embedded data making the 
  162.            disassembly look nicer (and smaller).
  163.  
  164.            The glue sniffer can now identify Microsoft-style cross-TOC glue.
  165.  
  166.            SYMBOL LOOKUP
  167.     
  168.            I drastically sped up CFM/traceback lookups over 6.5.1 so MacsBug is usable again.
  169.  
  170.            Optimized embedded 68K symbol lookup so it's about 10% faster.
  171.  
  172.            MISCELLANEOUS
  173.  
  174.            Fixed all instances (hopefully) where switching ISAs while in MacsBug wouldn't cause the 
  175.            register names to be erased and redrawn. My internal concept of current and previous ISA was a 
  176.            bit loopy.
  177.  
  178.            The syntax error display for all non-repeating commands has been fixed (br, etc.) You'll no 
  179.            longer see the entire help text as one garbled mess. Yeah, it confused me too.
  180.  
  181.            The “explain significance of” feature shows nicer output for slightly-negative numbers (0 to 
  182.            -16M).
  183.  
  184.            The display of “is a bad pointer” only yells about odd pointers on 68000s.
  185.  
  186.            Made internal commands override dcmds of the same name. You can specify a dcmd (only) by 
  187.            putting a "∂" in front of the name (and it should work for Help, too, as in “?∂cfm”).
  188.  
  189.            Allow “≠” for not-equal (Dave did it, I'll never remember it).
  190.             
  191.            Moved the typographical quotes up by one pixel (to make Greg Robbins happy).
  192.  
  193.            BUILT-IN DEBUGGER PREFS
  194.  
  195.            Fixed Get1xType and Get1xResource to be Get1IndType and Get1IndResource (we've added 
  196.            two macros to let you still type Get1xType and Get1xResource if you really want to).
  197.  
  198.            Replaced PPCJump macro with a more general one. PPCJumpA is now the old "branch absolute"
  199.      version.
  200.  
  201.  
  202. ©1995 Apple Computer, Inc.
  203.